In the previous practical we went through all the functions and saved our complete myCAGEset with all the analysis slots. In this (short) part, we will export data from this object for use in downstream quality control, manipulation, and visualization.
Summary and goals of this practical
CAGEr Export
- CTSS as bedGraph in genome browser
- Promoter width as bed file and visualize this in genome browser
2.1 Loading in myCAGE object
Let’s not forget the packages for good practice:
require(CAGEr)
package ‘S4Vectors’ was built under R version 3.3.2package ‘GenomeInfoDb’ was built under R version 3.3.2package ‘GenomicRanges’ was built under R version 3.3.2package ‘Biostrings’ was built under R version 3.3.2
load("../Data/intermediate/CAGEobject_twoSamples_PowNom_allSlots.RData")
Everything still in the slots and do we have the right samples? What is the genome build?
myCAGEset
2.2 CTSS visualization in genome browser
Make a bedgraph file
CAGEr can create bedGraph files with tracks of CAGE signal. It will give you two sets of tracks per sample: one of the plus strand and one for the minus strand. The function is exportCTSStoBedGraph() where we can specify if we want the normalized or raw tag counts. It needs:
object
values - “raw” or “normalized”
format - “BigWig” or “bedGraph”
oneFile - TRUE or FALSE to be exported in the same file (for bedGraph)
Let’s export then the normalized tag counts for both our samples in one file:
exportCTSStoBedGraph(myCAGEset,
values = "normalized",
format = "bedGraph",
oneFile = TRUE)
This is one file with each of the samples concatenated. Each will start with the track name= line for the genome browser, followed by the bed coordinates and the normalized tag count values for the height of the bar.
View in UCSC Genome browser as custom track
We will all look at the same location first. Please open the bedGraph file in a text editor of your choice and add a few lines (copy from below).
Top of the file: browser position chr21:5819775-5819875 followed by a line break. This will specify the 100 bp postiion on chromosome 21.
At the end of each trackname the following in this order. This will specify that the values should always start at zero, the data should be autoscaled, and the colour for easy viewing.
alwaysZero=on autoScale=on color=19,4,142
alwaysZero=on autoScale=on color=19,4,142
alwaysZero=on autoScale=on color=144,12,63
alwaysZero=on autoScale=on color=144,12,63
Example, for the first track name visible in the file it should now look like this:
browser position chr21:5819775-5819875
track name=zf_512cells_normalized_plus description="zf_512cells CTSS normalized (plus strand)" visibility=full type=bedGraph alwaysZero=on autoScale=on color=19,4,142
chr1 16925 16926 0.166938978924912
chr1 50283 50284 0.166938978924912
Now go to the UCSC Genome Browser.
- Select our genome build, Jul. 2010 (Zv9/danRer7), and click GO
- At the blue tabs bar; go to MyData and select Custom Tracks
- Click add custom tracks
- In the first box choose your file with the Browse button
- Click on submit
- Click on go and view in genome browser
Great! We now are looking at a region in chr21 and should look like shown below. On which strand do we see the signals?
Please note that because we set it to autoscale, the bars of both samples may seem evenly expressed but that is not true. The sample in blue goes up to value 10.3 whilst the sample in red to 31.2. To give a better picture of what’s happening here, you can set both to vertical viewing range and choose a max value (here maybe 35).
2.4 Empty R environment
rm(list = ls() )
Session Info
R version 3.3.1 (2016-06-21)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.11.6 (El Capitan)
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] stats4 parallel stats graphics grDevices utils datasets methods
[9] base
other attached packages:
[1] CAGEr_1.16.0 BSgenome_1.42.0 rtracklayer_1.34.1 Biostrings_2.42.1
[5] XVector_0.14.0 GenomicRanges_1.26.2 GenomeInfoDb_1.10.2 IRanges_2.8.1
[9] S4Vectors_0.12.1 BiocGenerics_0.20.0
loaded via a namespace (and not attached):
[1] Rcpp_0.12.8 knitr_1.15.1 magrittr_1.5
[4] splines_3.3.1 GenomicAlignments_1.10.0 zlibbioc_1.20.0
[7] beanplot_1.2 BiocParallel_1.8.1 som_0.3-5.1
[10] lattice_0.20-34 stringr_1.1.0 tools_3.3.1
[13] grid_3.3.1 SummarizedExperiment_1.4.0 data.table_1.10.0
[16] Biobase_2.34.0 htmltools_0.3.5 yaml_2.1.14
[19] rprojroot_1.1 digest_0.6.11 Matrix_1.2-7.1
[22] base64enc_0.1-3 bitops_1.0-6 RCurl_1.95-4.8
[25] VGAM_1.0-2 evaluate_0.10 rmarkdown_1.3
[28] stringi_1.1.2 backports_1.0.4 Rsamtools_1.26.1
[31] XML_3.98-1.5 jsonlite_1.2
LS0tCnRpdGxlOiAiMi4gVmlzdWFsaXphdGlvbiBpbiBHZW5vbWUgQnJvd3NlciAoVUNTQykiCm91dHB1dDoKICBodG1sX25vdGVib29rOiBkZWZhdWx0CiAgZGZfcHJpbnQ6IHBhZ2VkCgotLS0KPGJyPgpJbiB0aGUgcHJldmlvdXMgcHJhY3RpY2FsIHdlIHdlbnQgdGhyb3VnaCBhbGwgdGhlIGZ1bmN0aW9ucyBhbmQgc2F2ZWQgb3VyIGNvbXBsZXRlIG15Q0FHRXNldCB3aXRoIGFsbCB0aGUgYW5hbHlzaXMgc2xvdHMuIEluIHRoaXMgKHNob3J0KSBwYXJ0LCB3ZSB3aWxsIGV4cG9ydCBkYXRhIGZyb20gdGhpcyBvYmplY3QgZm9yIHVzZSBpbiBkb3duc3RyZWFtIHF1YWxpdHkgY29udHJvbCwgbWFuaXB1bGF0aW9uLCBhbmQgdmlzdWFsaXphdGlvbi4gCgojIyBTdW1tYXJ5IGFuZCBnb2FscyBvZiB0aGlzIHByYWN0aWNhbAo8YnI+Cl9DQUdFciBFeHBvcnRfCgoqIENUU1MgYXMgYmVkR3JhcGggaW4gZ2Vub21lIGJyb3dzZXIKKiBQcm9tb3RlciB3aWR0aCBhcyBiZWQgZmlsZSBhbmQgdmlzdWFsaXplICB0aGlzIGluIGdlbm9tZSBicm93c2VyCgojIyAyLjEgTG9hZGluZyBpbiBteUNBR0Ugb2JqZWN0CkxldCdzIG5vdCBmb3JnZXQgdGhlIHBhY2thZ2VzIGZvciBnb29kIHByYWN0aWNlOgoKYGBge3IsIG1lc3NhZ2UgPSBGQUxTRX0KcmVxdWlyZShDQUdFcikKbG9hZCgiLi4vRGF0YS9pbnRlcm1lZGlhdGUvQ0FHRW9iamVjdF90d29TYW1wbGVzX1Bvd05vbV9hbGxTbG90cy5SRGF0YSIpCmBgYApFdmVyeXRoaW5nIHN0aWxsIGluIHRoZSBzbG90cyBhbmQgZG8gd2UgaGF2ZSB0aGUgcmlnaHQgc2FtcGxlcz8gV2hhdCBpcyB0aGUgZ2Vub21lIGJ1aWxkPwpgYGB7ciwgZXZhbD1GQUxTRX0KbXlDQUdFc2V0CmBgYAoKCiMjIDIuMiBDVFNTIHZpc3VhbGl6YXRpb24gaW4gZ2Vub21lIGJyb3dzZXIKPGJyPgoKIyMjIyBNYWtlIGEgYmVkZ3JhcGggZmlsZQpfQ0FHRXJfIGNhbiBjcmVhdGUgYmVkR3JhcGggZmlsZXMgd2l0aCB0cmFja3Mgb2YgQ0FHRSBzaWduYWwuIEl0IHdpbGwgZ2l2ZSB5b3UgdHdvIHNldHMgb2YgdHJhY2tzIF9wZXIgc2FtcGxlXzogb25lIG9mIHRoZSBwbHVzIHN0cmFuZCBhbmQgb25lIGZvciB0aGUgbWludXMgc3RyYW5kLiBUaGUgZnVuY3Rpb24gaXMgYGV4cG9ydENUU1N0b0JlZEdyYXBoKClgIHdoZXJlIHdlIGNhbiBzcGVjaWZ5IGlmIHdlIHdhbnQgdGhlIG5vcm1hbGl6ZWQgb3IgcmF3IHRhZyBjb3VudHMuIApJdCBuZWVkczoKCiogYG9iamVjdGAgCiogYHZhbHVlc2AgLSAicmF3IiBvciAibm9ybWFsaXplZCIKKiBgZm9ybWF0YCAtICJCaWdXaWciIG9yICJiZWRHcmFwaCIKKiBgb25lRmlsZWAgLSBUUlVFIG9yIEZBTFNFIHRvIGJlIGV4cG9ydGVkIGluIHRoZSBzYW1lIGZpbGUgKGZvciBiZWRHcmFwaCkgCgpMZXQncyBleHBvcnQgdGhlbiB0aGUgbm9ybWFsaXplZCB0YWcgY291bnRzIGZvciBib3RoIG91ciBzYW1wbGVzIGluIG9uZSBmaWxlOgoKYGBge3IsIG1lc3NhZ2U9RkFMU0V9CmV4cG9ydENUU1N0b0JlZEdyYXBoKG15Q0FHRXNldCwKICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gIm5vcm1hbGl6ZWQiLAogICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPSAiYmVkR3JhcGgiLAogICAgICAgICAgICAgICAgICAgICBvbmVGaWxlID0gVFJVRSkKYGBgCgpUaGlzIGlzIG9uZSBmaWxlIHdpdGggZWFjaCBvZiB0aGUgc2FtcGxlcyBjb25jYXRlbmF0ZWQuIEVhY2ggd2lsbCBzdGFydCB3aXRoIHRoZSBgdHJhY2sgbmFtZT1gIGxpbmUgZm9yIHRoZSBnZW5vbWUgYnJvd3NlciwgZm9sbG93ZWQgYnkgdGhlIGJlZCBjb29yZGluYXRlcyBhbmQgdGhlIG5vcm1hbGl6ZWQgdGFnIGNvdW50IHZhbHVlcyBmb3IgdGhlIGhlaWdodCBvZiB0aGUgYmFyLiAKCjxicj4gCgojIyMjIFZpZXcgaW4gVUNTQyBHZW5vbWUgYnJvd3NlciBhcyBjdXN0b20gdHJhY2sKV2Ugd2lsbCBhbGwgbG9vayBhdCB0aGUgc2FtZSBsb2NhdGlvbiBmaXJzdC4gUGxlYXNlIG9wZW4gdGhlIGJlZEdyYXBoIGZpbGUgaW4gYSB0ZXh0IGVkaXRvciBvZiB5b3VyIGNob2ljZSBhbmQgYWRkIGEgZmV3IGxpbmVzIChjb3B5IGZyb20gYmVsb3cpLgoKVG9wIG9mIHRoZSBmaWxlOiAKYGJyb3dzZXIgcG9zaXRpb24gY2hyMjE6NTgxOTc3NS01ODE5ODc1YCBmb2xsb3dlZCBieSBhIGxpbmUgYnJlYWsuIFRoaXMgd2lsbCBzcGVjaWZ5IHRoZSAxMDAgYnAgcG9zdGlpb24gb24gY2hyb21vc29tZSAyMS4KCkF0IHRoZSBlbmQgb2YgZWFjaCB0cmFja25hbWUgdGhlIGZvbGxvd2luZyBpbiB0aGlzIG9yZGVyLiBUaGlzIHdpbGwgc3BlY2lmeSB0aGF0IHRoZSB2YWx1ZXMgc2hvdWxkIGFsd2F5cyBzdGFydCBhdCB6ZXJvLCB0aGUgZGF0YSBzaG91bGQgYmUgYXV0b3NjYWxlZCwgYW5kIHRoZSBjb2xvdXIgZm9yIGVhc3kgdmlld2luZy4KCmBhbHdheXNaZXJvPW9uIGF1dG9TY2FsZT1vbiBjb2xvcj0xOSw0LDE0MmAgPGJyPgpgYWx3YXlzWmVybz1vbiBhdXRvU2NhbGU9b24gY29sb3I9MTksNCwxNDJgIDxicj4KYGFsd2F5c1plcm89b24gYXV0b1NjYWxlPW9uIGNvbG9yPTE0NCwxMiw2M2AgPGJyPgpgYWx3YXlzWmVybz1vbiBhdXRvU2NhbGU9b24gY29sb3I9MTQ0LDEyLDYzYCA8YnI+CgpFeGFtcGxlLCBmb3IgdGhlIGZpcnN0IHRyYWNrIG5hbWUgdmlzaWJsZSBpbiB0aGUgZmlsZSBpdCBzaG91bGQgbm93IGxvb2sgbGlrZSB0aGlzOgoKYGBge2Jhc2gsIGV2YWw9RkFMU0V9CmJyb3dzZXIgcG9zaXRpb24gY2hyMjE6NTgxOTc3NS01ODE5ODc1CnRyYWNrIG5hbWU9emZfNTEyY2VsbHNfbm9ybWFsaXplZF9wbHVzIGRlc2NyaXB0aW9uPSJ6Zl81MTJjZWxscyBDVFNTIG5vcm1hbGl6ZWQgKHBsdXMgc3RyYW5kKSIgdmlzaWJpbGl0eT1mdWxsIHR5cGU9YmVkR3JhcGggYWx3YXlzWmVybz1vbiBhdXRvU2NhbGU9b24gY29sb3I9MTksNCwxNDIKY2hyMQkxNjkyNQkxNjkyNgkwLjE2NjkzODk3ODkyNDkxMgpjaHIxCTUwMjgzCTUwMjg0CTAuMTY2OTM4OTc4OTI0OTEyCmBgYAoKTm93IGdvIHRvIHRoZSBbVUNTQyBHZW5vbWUgQnJvd3Nlcl0oaHR0cHM6Ly9nZW5vbWUtZXVyby51Y3NjLmVkdS9jZ2ktYmluL2hnR2F0ZXdheT9oZ3NpZD0yMTk2MjgyOThfcjhzRFQzWmtCMlZaTFY0bHVvRzlQN3pyMGhuYykuIDxicj4KCi0gU2VsZWN0IG91ciBnZW5vbWUgYnVpbGQsICBfX0p1bC4gMjAxMCAoWnY5L2RhblJlcjcpX18sIGFuZCBjbGljayBfR09fCi0gQXQgdGhlIGJsdWUgdGFicyBiYXI7IGdvIHRvIF9NeURhdGFfIGFuZCBzZWxlY3QgX0N1c3RvbSBUcmFja3NfCi0gQ2xpY2sgX2FkZCBjdXN0b20gdHJhY2tzXwotIEluIHRoZSBmaXJzdCBib3ggY2hvb3NlIHlvdXIgZmlsZSB3aXRoIHRoZSBfQnJvd3NlXyBidXR0b24KLSBDbGljayBvbiBfc3VibWl0XwotIENsaWNrIG9uIF9nb18gYW5kIHZpZXcgaW4gZ2Vub21lIGJyb3dzZXIKCkdyZWF0ISBXZSBub3cgYXJlIGxvb2tpbmcgYXQgYSByZWdpb24gaW4gY2hyMjEgYW5kIHNob3VsZCBsb29rIGxpa2Ugc2hvd24gYmVsb3cuIE9uIHdoaWNoIHN0cmFuZCBkbyB3ZSBzZWUgdGhlIHNpZ25hbHM/CgohW0dlbm9tZSBicm93c2VyIHBpY3R1cmVdKC4uL2ltYWdlcy91Y3NjX2NhcHR1cmVfMlNhbXBsZXMucG5nKQoKPiBQbGVhc2Ugbm90ZSB0aGF0IGJlY2F1c2Ugd2Ugc2V0IGl0IHRvIGF1dG9zY2FsZSwgdGhlIGJhcnMgb2YgYm90aCBzYW1wbGVzIG1heSBzZWVtIGV2ZW5seSBleHByZXNzZWQgYnV0IHRoYXQgaXMgbm90IHRydWUuIFRoZSBzYW1wbGUgaW4gYmx1ZSBnb2VzIHVwIHRvIHZhbHVlIDEwLjMgd2hpbHN0IHRoZSBzYW1wbGUgaW4gcmVkIHRvIDMxLjIuIFRvIGdpdmUgYSBiZXR0ZXIgcGljdHVyZSBvZiB3aGF0J3MgaGFwcGVuaW5nIGhlcmUsIHlvdSBjYW4gc2V0IGJvdGggdG8gX19fdmVydGljYWwgdmlld2luZyByYW5nZV9fXyBhbmQgY2hvb3NlIGEgX19fbWF4IHZhbHVlX19fIChoZXJlIG1heWJlIDM1KS4gCgo8YnI+CgojIyMgMi4zIFByb21vdGVyIHdpZHRoIHZpc3VhbGl6YXRpb24gaW4gZ2Vub21lIGJyb3dzZXIKPGJyPiAKCiMjIyMgTWFrZSB0aGUgYmVkIGZpbGUKVGhlIGludGVycXVhbnRpbGUgd2lkdGggcGVyIFRDIHRoYXQgd2UgZGV0ZXJtaW5lZCBlYXJsaWVyIChiZXR3ZWVuIDAuMSBhbmQgMC45KSBjYW4gYWxzbyBiZSB2aXN1YWxpemVkIGluIHRoZSBnZW5vbWUgYnJvd3NlciBhcyBhIGdlbmUtbGlrZSByZXByZXNlbnRhdGlvbi4gRm9yIHRoaXMsIHdlIGFyZSBleHBvcnRpbmcgaXQgaW4gYSBiZWQgZmlsZSBmb3JtYXQgYnkgdXNpbmcgYGV4cG9ydFRvQmVkKClgCgoKYGBge3IsIG1lc3NhZ2UgPSBGQUxTRX0KZXhwb3J0VG9CZWQob2JqZWN0ID0gbXlDQUdFc2V0LCAKICAgICAgICAgICAgd2hhdCA9ICJ0YWdDbHVzdGVycyIsCiAgICAgICAgICAgIHFMb3cgPSAwLjEsIAogICAgICAgICAgICBxVXAgPSAwLjksIAogICAgICAgICAgICBvbmVGaWxlID0gVFJVRSkKYGBgCgo8YnI+CgojIyMjIFZpZXcgaW4gVUNTQyBHZW5vbWUgYnJvd3NlciBhcyBjdXN0b20gdHJhY2sKU2ltaWxhciB0byBhYm92ZSwgd2Ugd2lsbCBhbGwgbG9vayBhdCB0aGUgc2FtZSBsb2NhdGlvbiBhZ2Fpbi4gUGxlYXNlIG9wZW4gdGhlIGJlZCBmaWxlIGluIGEgdGV4dCBlZGl0b3Igb2YgeW91ciBjaG9pY2UgYW5kIGFkZCB0aGUgZmV3IGxpbmVzIChjb3B5IGZyb20gYmVsb3cpLgoKVG9wIG9mIHRoZSBmaWxlOiAKYGJyb3dzZXIgcG9zaXRpb24gY2hyMjE6NTgxOTc3NS01ODE5ODc1YCBmb2xsb3dlZCBieSBhIGxpbmUgYnJlYWsuIFRoaXMgd2lsbCBzcGVjaWZ5IHRoZSAxMDAgYnAgcG9zdGlpb24gb24gY2hyb21vc29tZSAyMS4KCkF0IHRoZSBlbmQgb2YgZWFjaCB0cmFja25hbWUgdGhlIGZvbGxvd2luZyBpbiB0aGlzIG9yZGVyLiBUaGlzIHdpbGwgY29sb3VyIHRoZSBzYW1wbGVzIGluIHRoZSBzYW1lIGNvbG91cnMuCgpgYWx3YXlzWmVybz1vbiBhdXRvU2NhbGU9b24gY29sb3I9MTksNCwxNDJgIDxicj4KYGFsd2F5c1plcm89b24gYXV0b1NjYWxlPW9uIGNvbG9yPTE0NCwxMiw2M2AgPGJyPgoKCk5vdyByZXZpc2l0IHRoZSBbVUNTQyBHZW5vbWUgQnJvd3Nlcl0oaHR0cHM6Ly9nZW5vbWUtZXVyby51Y3NjLmVkdS9jZ2ktYmluL2hnR2F0ZXdheT9oZ3NpZD0yMTk2MjgyOThfcjhzRFQzWmtCMlZaTFY0bHVvRzlQN3pyMGhuYykuIDxicj4KCi0gQXQgdGhlIGJsdWUgdGFicyBiYXI7IGdvIHRvIF9NeURhdGFfIGFuZCBzZWxlY3QgX0N1c3RvbSBUcmFja3NfCi0gQ2xpY2sgX2FkZCBjdXN0b20gdHJhY2tzXwotIEluIHRoZSBmaXJzdCBib3ggY2hvb3NlIHlvdXIgZmlsZSB3aXRoIHRoZSBfQnJvd3NlXyBidXR0b24KLSBDbGljayBvbiBfc3VibWl0XwotIENsaWNrIG9uIF9nb18gYW5kIHZpZXcgaW4gZ2Vub21lIGJyb3dzZXIKCkFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGN1c3RvbSB0cmFja3MsIHRoZSBwZXZpb3VzIGJlZEdyYXBocyBhcmUgc3RpbGwgdGhlcmUgYW5kIHdlIGhhdmUgYWRkZWQgdGhlIFRDIHdpZHRocyBmb3IgZWFjaCBzYW1wbGVzLiAKCiFbR2Vub21lIGJyb3dzZXIgcGljdHVyZSBUQ3MgYWRkZWRdKC4uL2ltYWdlcy91Y3NjX2NhcHR1cmVfVEN3aWR0aC5wbmcpCgo+IFRoZSBiYXJzIGFyZSBhZGp1c3RlZCB0byBhIG1heCB2YWx1ZSBvZiAzNSBmb3IgdGhlIENUU1MuIENhbiB5b3Ugc2VlIHRoZSBkaWZmZXJlbmNlPwoKPGJyPgoKIyMjIyBBIG5vdGUgb24gY29uc2Vuc3VzIGNsdXN0ZXJzClRoZSBnZW5vbWUgYnJvd3NlciBwaWN0dXJlIHNob3dpbmcgYm90aCB0aGUgVENzIGFuZCBDVFNTcyBoaWdobGlnaHRzIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQgYWJvdXQgY29uc2Vuc3VzIGNsdXN0ZXJzLiBUaGUgZGlzdHJpYnV0aW9uIG9mIENUU1MgdGhhdCBmb3JtIHRoZSBUQyBpbiBwcmltNiBvdmVybGFwIHR3byBzZXBlcmF0ZSBUQ3MgaW4gdGhlIDUxMiBjZWxsIHN0YWdlLgoKIyAyLjQgRW1wdHkgUiBlbnZpcm9ubWVudApgYGB7cn0Kcm0obGlzdCA9IGxzKCkgKQpgYGAKCgojIFNlc3Npb24gSW5mbwpgYGB7ciwgZWNobz1GQUxTRX0Kc2Vzc2lvbkluZm8oKQpgYGAK